Skip to main content

SonarQube

SonarQube es una plataforma de código abierto para la inspección continua de la calidad del código fuente que permite realizar análisis automáticos de código para detectar errores, código duplicado y vulnerabilidades de seguridad en más de 20 lenguajes de programación.

Características

  • Análisis de código estático: Realiza análisis estático del código fuente para detectar errores, código duplicado y vulnerabilidades de seguridad.

  • Integración continua: Se integra con herramientas de integración continua como Jenkins, Travis CI y Azure DevOps.

  • Soporte para múltiples lenguajes: Soporta más de 20 lenguajes de programación, incluyendo Java, JavaScript, Python, C#, C++ y Ruby.

  • Detección de vulnerabilidades: Detecta vulnerabilidades de seguridad en el código fuente.

  • Generación de informes: Genera informes detallados sobre la calidad del código fuente.

Instalación

Para instalar SonarQube, es necesario descargar el paquete de instalación correspondiente a la plataforma en la que se desea instalar (Windows, Linux o macOS) desde la página de descargas.

Una vez descargado el paquete de instalación, se debe seguir el proceso de instalación correspondiente a la plataforma en la que se desea instalar.

Instalación de Docker

Si no se tiene instalado Docker, se puede instalar siguiendo las instrucciones de la documentación oficial.

Instalación de SonarQube con Docker

  1. Descargar la imagen de SonarQube desde Docker Hub:

    docker pull sonarqube
  2. Ejecutar SonarQube en un contenedor Docker:

    docker run -d --name sonarqube -p 9000:9000 sonarqube

    Explicación de los parámetros utilizados:

    • docker run: Comando para ejecutar un contenedor Docker.
    • -d: Bandera para ejecutar el contenedor en segundo plano.
    • --name sonarqube: Nombre del contenedor.
    • -p 9000:9000: Mapeo del puerto 9000 del contenedor al puerto 9000 del host.
    • sonarqube: Nombre de la imagen de SonarQube previamente descargada.
  3. Acceder a la interfaz web de SonarQube en http://localhost:9000 y configurar el servidor.

Importación de proyectos

Hay dos métodos principales para integrar SonarQube con un proyecto y cada uno tiene su propio flujo de trabajo:

Análisis directo

1. Generar token de acceso.

Se debe generar un token de acceso en SonarQube para el proyecto y configurarlo en el archivo pom.xml:

  • En el menú de administración de SonarQube, el icono de perfil y seleccionar "My Account", "Security" y luego configurar el token de acceso en "Generate Tokens".

2. Creación del archivo de configuración

Crear un archivo de configuración de SonarQube en la raíz del proyecto con el nombre sonar-project.properties.

sonar-project.properties
// Nombre del proyecto
sonar.projectName=SpringApp
sonar.projectVersion=1.0

// Directorios de código fuente y pruebas
sonar.sources=src/main/java
sonar.tests=src/test/java

// URL del servidor de SonarQube
sonar.host.url=http://localhost:9000

// (Opcional) el token de autenticación

sonar.login=(Token generado en SonarQube)

//Configuración de cobertura de pruebas (si se está usando herramientas de cobertura)

// sonar.java.coveragePlugin=jacoco
// sonar.jacoco.reportPaths=target/jacoco.exec
danger

Es importante no subir el token de autenticación a un repositorio público, para evitar esto se puede configurar el token como una variable de entorno o pasar directamente el token en el de ejecución del análisis.

Ejecución del análisis

Ejecutar el análisis de SonarQube en el proyecto:

Si el token de acceso no se ha configurado en el archivo pom.xml, se puede ejecutar el análisis pasando el token como argumento:

mvn sonar:sonar -D sonar.login=(Token generado en SonarQube)